/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejb.common;

import entity.DettaglioOrdine;
import facade.DettaglioOrdineFacade;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
 *
 * @author Antonio
 */
@Stateless
public class DettaglioOrdineManager implements DettaglioOrdineManagerLocal {
    @EJB
    private DettaglioOrdineFacade dettaglioOrdineFacade;

    @PersistenceContext(unitName = "E-Market-ejbPU")
    private EntityManager em;
    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")

    public void persist(Object object) {
        em.persist(object);
    }    

    @Override
    public List<DettaglioOrdine> ottieniDaOrdine(Long idOrdine) {

        if (idOrdine == null) {
            throw new NullPointerException();
        }

        Query q = em.createNamedQuery("dettaglioOrdine.prodottiDaOrdine");
        q.setParameter(1, idOrdine);

        return q.getResultList();
    }// ottieniProdottiDaOrdine

    @Override
    public DettaglioOrdine cercaDettaglioiOrdine(Long idOrdine, Long idProdotto) {
        Query q=em.createNamedQuery("dettaglioOrdine.carcaDaOrdineEProdotto");
        q.setParameter(1, idOrdine);
        q.setParameter(2, idProdotto);
        if(q.getResultList().isEmpty()){
            return null;
        }
        return (DettaglioOrdine) q.getSingleResult();
    }

    @Override
    public void creaDettaglioOrdine(DettaglioOrdine dettaglioOrdine) {
        dettaglioOrdineFacade.create(dettaglioOrdine);
    }

    @Override
    public void modificaDettaglioOrdine(DettaglioOrdine dettaglioOrdine) {
        dettaglioOrdineFacade.edit(dettaglioOrdine);
    }

    @Override
    public void eliminaDettaglioOrdine(DettaglioOrdine dettaglioOrdine) {
        dettaglioOrdineFacade.remove(dettaglioOrdine);
    }
}
